package com.sob.bountyhunter.condiciones;

import com.sob.bountyhunter.atributos.HojaPersonaje;
import com.sob.bountyhunter.entidades.Entidad;
import com.sob.bountyhunter.entidades.actores.Actor;

/**
 * Condicion de lentitud
 * @author MagusDemon
 *
 */
public class CondicionLento extends Condicion {
	public static final float DEFAULT_VELOCIDAD = 50;	//Reducion de velocidad por defecto
	public static final int DEFAULT_DURACION = 5000;	//Duracion por defecto de la duracion
	public static final String DEFAULT_NOMBRE = "{i1}Lentitud";	//Nombre
	
	private float velocidad;
	
	public CondicionLento(Actor h) {
		super(DEFAULT_NOMBRE, h, DEFAULT_DURACION);
		velocidad=DEFAULT_VELOCIDAD;
	}
	
	public CondicionLento(Actor h, float reduccionVel) {
		super(DEFAULT_NOMBRE, h, DEFAULT_DURACION);
		velocidad=reduccionVel;
	}

	
	public CondicionLento(Actor h, float reduccionVel, long tiempo) {
		super(DEFAULT_NOMBRE, h,tiempo);
		velocidad=reduccionVel;
	}
	
	public void updateCondicion(){
		super.updateCondicion();
		//si aun esta activa la condicion
		if(!duracion.isFinished()){
			//Reduce la velocidad del afectado en un porcentaje
			float base=afectado.hojaPersonaje.getAtributo(HojaPersonaje.VELOCIDAD).getBase();
			float mod=-(base*velocidad/100);
			afectado.hojaPersonaje.getAtributo(HojaPersonaje.VELOCIDAD).setMod(mod);
		}else{
			delete=true;
		}
	}
	
	public float getVelocidad(){
		return velocidad;
	}
	
	@Override
	protected void setPotencia(){
		potencia=(int)duracion.getDuration();
	}
}
